package com.breadenglish.cms.api.app.dao.impl;

import com.breadenglish.cms.api.app.dao.AudioDao;
import com.breadenglish.cms.api.app.domain.constants.Constants;
import com.breadenglish.cms.api.app.domain.db.Audio;
import com.breadenglish.cms.api.app.domain.query.AudioQuery;
import com.breadenglish.cms.api.app.mapper.AudioMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;


/**
 * Audio
 * <p>
 * User: guoyao
 * DateTime: 2015-12-22 20:06:38
 */
@Service("audioDao")
public class AudioDaoImpl implements AudioDao {

    @Resource
    private AudioMapper audioMapper;

    /**
     * 根据主键查询Audio对象
     *
     * @param audioId
     * @return Audio对象
     */
    @Override
    public Audio selectByPrimaryKey(Long audioId) {
        return audioMapper.selectByPrimaryKey(audioId);
    }

    @Override
    public AudioQuery selectById(Long audioId) {
        return audioMapper.selectAudioById(audioId);
    }

    /**
     * 根据查询条件查询符合条件的Audio对象
     *
     * @param audio
     * @return 符合条件的Audio对象List
     */
    @Override
    public List<Audio> select(Audio audio) {
        return audioMapper.select(audio);
    }


    /**
     * 根据查询条件查询符合条件的Audio对象
     *
     * @param audio
     * @return 符合条件的Audio对象List
     */
    public List<AudioQuery> queryAudio(Audio audio) {
        return audioMapper.queryAudio(audio);
    }

    /**
     * 根据主键删除Audio对象
     *
     * @param audioId
     * @return 影响条件数
     */
    @Override
    public int deleteByPrimaryKey(Long audioId) {
        return audioMapper.deleteByPrimaryKey(audioId);
    }

    /**
     * 根据条件删除符合条件的Audio对象
     *
     * @param audio
     * @return 影响条件数
     */
    @Override
    public int delete(Audio audio) {
        return audioMapper.delete(audio);
    }

    /**
     * 插入Audio对象
     *
     * @param audio
     * @return 影响条件数
     */
    @Override
    public int insert(Audio audio) {
        audio.setDelTag(Constants.NOT);
        return audioMapper.insert(audio);
    }

    /**
     * 更新Audio对象
     *
     * @param audio
     * @return 影响条件数
     */
    @Override
    public int update(Audio audio) {
        return audioMapper.update(audio);
    }
}
